Business Intelligence (BI) generally refers to software tools used to improve business enterprise decision-making. These tools are commonly applied to financial, human resource, marketing, sales, customer and supplier analyses. More specifically, these tools can include: reporting and analysis tools to present information, content delivery infrastructure systems for delivery and management of reports and analytics, and data warehousing systems for cleansing and consolidating information from disparate sources. Business Intelligence tools work with data management systems, such as relational databases or On Line Analytic Processing (OLAP) systems used to collect, store, and manage raw data.
Business Intelligence often includes architectures for storing, accessing, and searching collections of objects such as reports, folders, users, user groups, report packages, report parts, widgets, documents, and the like which can be stored in a repository, server cache, or other medium. The stored objects can be accessed by other applications within the BI system or by applications developed to interact with the BI system through public Application Program Interfaces (APIs), custom development tools, and the like.
If a query returns a large group of objects it can be inefficient to provide the entire group of objects. Instead, segmenting the overall index of objects returned by the query into pages can make returning values for the query more manageable and efficient. However, paging through the returned values can require that an accessing application maintain values related to the “state” of the query page that it is requesting or has received. This can require additional programming logic in the accessing application, server handling requests, or additional helper logic within the API in order to maintain information about the state of the query and its returned values.
In view of the foregoing, it would be advantageous to provide an improved method and apparatus for page queries where the repository provides logic to generate a set of queries that embed query state within the query.